import 'package:enjoy_community_flutter/pages/house/components/house_item.dart';
import 'package:enjoy_community_flutter/utils/event_bud.dart';
import 'package:enjoy_community_flutter/utils/http.dart';
import 'package:enjoy_community_flutter/utils/logger.dart';
import 'package:enjoy_community_flutter/utils/toast.dart';
import 'package:flutter/material.dart';

class HouseList extends StatefulWidget {
  const HouseList({super.key});

  @override
  State<HouseList> createState() => _HouseListState();
}

class _HouseListState extends State<HouseList> {
  List houseList = [];

  @override
  void initState() {
    super.initState();
    _getHouseList();

    eventBus.on<RefreshHouseList>().listen((event) {
      setState(() {
        houseList = [];
        _getHouseList();
      });
    });
  }

  _getHouseList() async {
    try {
      final res = await http.get('/room');
      if (res['code'] != 10000) return ToastUtil.showError('房屋列表获取失败！');
      ToastUtil.showSuccess('房屋列表获取成功~');
      setState(() {
        houseList = res['data'];
      });
    } catch (e) {
      logger.e('获取房屋列表失败：$e');
      ToastUtil.showError('获取房屋列表数据失败');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        backgroundColor: const Color.fromARGB(255, 241, 238, 238),
        appBar: AppBar(
          title: const Text('我的房屋'),
          backgroundColor: Colors.transparent,
          centerTitle: true,
        ),
        body: Stack(children: [
          Padding(
            padding: const EdgeInsets.only(bottom: 80, left: 10, right: 10),
            child: ListView.separated(
                itemBuilder: (BuildContext context, int index) {
                  return HouseItem(houseItem: houseList[index]);
                },
                separatorBuilder: (BuildContext context, int index) {
                  return Container(
                    height: 10,
                    color: const Color.fromARGB(255, 241, 238, 238),
                  );
                },
                itemCount: houseList.length),
          ),
          Positioned(
              bottom: 0,
              left: 0,
              right: 0,
              child: Container(
                  padding: const EdgeInsets.all(10),
                  color: Colors.transparent,
                  child: Row(children: [
                    Expanded(
                        child: ElevatedButton(
                            onPressed: () {
                              Navigator.pushNamed(context, '/location_list');
                            },
                            child: const Column(children: [
                              SizedBox(height: 5),
                              Icon(Icons.add),
                              Text('添加房屋'),
                              SizedBox(height: 5),
                            ])))
                  ])))
        ]));
  }
}
